1
|
|
|
import {MigrationInterface, QueryRunner} from "typeorm"; |
2
|
|
|
|
3
|
|
|
export class Init1617110247430 implements MigrationInterface { |
4
|
|
|
name = 'Init1617110247430' |
5
|
|
|
|
6
|
|
|
public async up(queryRunner: QueryRunner): Promise<void> { |
7
|
|
|
await queryRunner.query(`CREATE TABLE "product" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "title" character varying NOT NULL, "description" character varying, "unitPrice" integer NOT NULL DEFAULT 0, CONSTRAINT "PK_bebc9158e480b949565b4dc7a82" PRIMARY KEY ("id"))`); |
8
|
|
|
await queryRunner.query(`CREATE TYPE "user_role_enum" AS ENUM('photographer', 'director')`); |
9
|
|
|
await queryRunner.query(`CREATE TABLE "user" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "firstName" character varying NOT NULL, "lastName" character varying NOT NULL, "email" character varying NOT NULL, "apiToken" character varying, "password" character varying NOT NULL, "role" "user_role_enum" NOT NULL, CONSTRAINT "UQ_e12875dfb3b1d92d7d7c5377e22" UNIQUE ("email"), CONSTRAINT "PK_cace4a159ff9f2512dd42373760" PRIMARY KEY ("id"))`); |
10
|
|
|
await queryRunner.query(`CREATE INDEX "api-token" ON "user" ("apiToken") `); |
11
|
|
|
await queryRunner.query(`CREATE TYPE "school_status_enum" AS ENUM('private', 'public')`); |
12
|
|
|
await queryRunner.query(`CREATE TYPE "school_type_enum" AS ENUM('kindergarten', 'primary', 'elementary', 'middle_school', 'high_school')`); |
13
|
|
|
await queryRunner.query(`CREATE TABLE "school" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "reference" character varying NOT NULL, "name" character varying NOT NULL, "address" character varying NOT NULL, "zipCode" character varying NOT NULL, "city" character varying NOT NULL, "status" "school_status_enum" NOT NULL, "type" "school_type_enum" NOT NULL, "phoneNumber" character varying, "numberOfStudents" integer DEFAULT 0, "numberOfClasses" integer DEFAULT 0, "createdAt" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, "observation" text, "pdv" TIMESTAMP, "directorId" uuid, CONSTRAINT "PK_57836c3fe2f2c7734b20911755e" PRIMARY KEY ("id"))`); |
14
|
|
|
await queryRunner.query(`CREATE TYPE "photo_type_enum" AS ENUM('unit', 'brothers_sisters', 'group')`); |
15
|
|
|
await queryRunner.query(`CREATE TABLE "photo" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "type" "photo_type_enum" NOT NULL, "name" character varying NOT NULL, "path" character varying NOT NULL, "createdAt" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, "schoolId" uuid NOT NULL, CONSTRAINT "PK_723fa50bf70dcfd06fb5a44d4ff" PRIMARY KEY ("id"))`); |
16
|
|
|
await queryRunner.query(`CREATE TABLE "access_token" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "token" character varying NOT NULL, "expiredAt" TIMESTAMP NOT NULL, "photoId" uuid, CONSTRAINT "REL_45401994629a09ea806521d0bc" UNIQUE ("photoId"), CONSTRAINT "PK_f20f028607b2603deabd8182d12" PRIMARY KEY ("id"))`); |
17
|
|
|
await queryRunner.query(`CREATE TABLE "school_product" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "parentUnitPrice" integer NOT NULL DEFAULT 0, "photographerUnitPrice" integer NOT NULL DEFAULT 0, "schoolId" uuid NOT NULL, "productId" uuid, CONSTRAINT "PK_94ee9cff4b4e6fbd8e6131e6782" PRIMARY KEY ("id"))`); |
18
|
|
|
await queryRunner.query(`ALTER TABLE "school" ADD CONSTRAINT "FK_bbfa0c35398b642f1e3903e9789" FOREIGN KEY ("directorId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); |
19
|
|
|
await queryRunner.query(`ALTER TABLE "photo" ADD CONSTRAINT "FK_92a92cf6e76017c70a95170a540" FOREIGN KEY ("schoolId") REFERENCES "school"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); |
20
|
|
|
await queryRunner.query(`ALTER TABLE "access_token" ADD CONSTRAINT "FK_45401994629a09ea806521d0bcc" FOREIGN KEY ("photoId") REFERENCES "photo"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); |
21
|
|
|
await queryRunner.query(`ALTER TABLE "school_product" ADD CONSTRAINT "FK_bbb74619bf321e08ac3d5ead46e" FOREIGN KEY ("schoolId") REFERENCES "school"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); |
22
|
|
|
await queryRunner.query(`ALTER TABLE "school_product" ADD CONSTRAINT "FK_19a92ea896b8e238db58505e88f" FOREIGN KEY ("productId") REFERENCES "product"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); |
23
|
|
|
await queryRunner.query(`INSERT INTO "user" VALUES('c5dc7188-cdf7-4439-a936-4379a79635de', 'John', 'Doe', '[email protected]', '$argon2i$v=19$m=4096,t=3,p=1$u7Jw1anFWyHcpfeOxjGYuQ$Ic4YheZZK9aF81q7CW8geSiG6Bsy+f52EnKTyzBlEXE', '$argon2i$v=19$m=4096,t=3,p=1$slHh/xhoh8SvIjApBHSZnA$hqsry11DeWbNYsFnzADPkYOP2WQrf0yqDXGC3xjSX9A', 'photographer')`, undefined); |
24
|
|
|
} |
25
|
|
|
|
26
|
|
|
public async down(queryRunner: QueryRunner): Promise<void> { |
27
|
|
|
await queryRunner.query(`ALTER TABLE "school_product" DROP CONSTRAINT "FK_19a92ea896b8e238db58505e88f"`); |
28
|
|
|
await queryRunner.query(`ALTER TABLE "school_product" DROP CONSTRAINT "FK_bbb74619bf321e08ac3d5ead46e"`); |
29
|
|
|
await queryRunner.query(`ALTER TABLE "access_token" DROP CONSTRAINT "FK_45401994629a09ea806521d0bcc"`); |
30
|
|
|
await queryRunner.query(`ALTER TABLE "photo" DROP CONSTRAINT "FK_92a92cf6e76017c70a95170a540"`); |
31
|
|
|
await queryRunner.query(`ALTER TABLE "school" DROP CONSTRAINT "FK_bbfa0c35398b642f1e3903e9789"`); |
32
|
|
|
await queryRunner.query(`DROP TABLE "school_product"`); |
33
|
|
|
await queryRunner.query(`DROP TABLE "access_token"`); |
34
|
|
|
await queryRunner.query(`DROP TABLE "photo"`); |
35
|
|
|
await queryRunner.query(`DROP TYPE "photo_type_enum"`); |
36
|
|
|
await queryRunner.query(`DROP TABLE "school"`); |
37
|
|
|
await queryRunner.query(`DROP TYPE "school_type_enum"`); |
38
|
|
|
await queryRunner.query(`DROP TYPE "school_status_enum"`); |
39
|
|
|
await queryRunner.query(`DROP INDEX "api-token"`); |
40
|
|
|
await queryRunner.query(`DROP TABLE "user"`); |
41
|
|
|
await queryRunner.query(`DROP TYPE "user_role_enum"`); |
42
|
|
|
await queryRunner.query(`DROP TABLE "product"`); |
43
|
|
|
} |
44
|
|
|
|
45
|
|
|
} |
46
|
|
|
|